1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.google.common.collect;
18
19 import static com.google.common.truth.Truth.assertThat;
20
21 import com.google.common.annotations.GwtCompatible;
22 import com.google.common.base.Objects;
23 import com.google.common.testing.EqualsTester;
24
25
26
27
28
29
30 @GwtCompatible(emulated = true)
31 public class SingletonImmutableTableTest extends AbstractImmutableTableTest {
32 private final ImmutableTable<Character, Integer, String> testTable =
33 new SingletonImmutableTable<Character, Integer, String>('a', 1, "blah");
34
35 public void testHashCode() {
36 assertEquals(Objects.hashCode('a', 1, "blah"), testTable.hashCode());
37 }
38
39 public void testCellSet() {
40 assertEquals(ImmutableSet.of(Tables.immutableCell('a', 1, "blah")), testTable.cellSet());
41 }
42
43 public void testColumn() {
44 assertEquals(ImmutableMap.of(), testTable.column(0));
45 assertEquals(ImmutableMap.of('a', "blah"), testTable.column(1));
46 }
47
48 public void testColumnKeySet() {
49 assertEquals(ImmutableSet.of(1), testTable.columnKeySet());
50 }
51
52 public void testColumnMap() {
53 assertEquals(ImmutableMap.of(1, ImmutableMap.of('a', "blah")), testTable.columnMap());
54 }
55
56 public void testRow() {
57 assertEquals(ImmutableMap.of(), testTable.row('A'));
58 assertEquals(ImmutableMap.of(1, "blah"), testTable.row('a'));
59 }
60
61 public void testRowKeySet() {
62 assertEquals(ImmutableSet.of('a'), testTable.rowKeySet());
63 }
64
65 public void testRowMap() {
66 assertEquals(ImmutableMap.of('a', ImmutableMap.of(1, "blah")),
67 testTable.rowMap());
68 }
69
70 public void testEqualsObject() {
71 new EqualsTester()
72 .addEqualityGroup(testTable, HashBasedTable.create(testTable))
73 .addEqualityGroup(ImmutableTable.of(), HashBasedTable.create())
74 .addEqualityGroup(HashBasedTable.create(ImmutableTable.of('A', 2, "")))
75 .testEquals();
76 }
77
78 public void testToString() {
79 assertEquals("{a={1=blah}}", testTable.toString());
80 }
81
82 public void testContains() {
83 assertTrue(testTable.contains('a', 1));
84 assertFalse(testTable.contains('a', 2));
85 assertFalse(testTable.contains('A', 1));
86 assertFalse(testTable.contains('A', 2));
87 }
88
89 public void testContainsColumn() {
90 assertTrue(testTable.containsColumn(1));
91 assertFalse(testTable.containsColumn(2));
92 }
93
94 public void testContainsRow() {
95 assertTrue(testTable.containsRow('a'));
96 assertFalse(testTable.containsRow('A'));
97 }
98
99 public void testContainsValue() {
100 assertTrue(testTable.containsValue("blah"));
101 assertFalse(testTable.containsValue(""));
102 }
103
104 public void testGet() {
105 assertEquals("blah", testTable.get('a', 1));
106 assertNull(testTable.get('a', 2));
107 assertNull(testTable.get('A', 1));
108 assertNull(testTable.get('A', 2));
109 }
110
111 public void testIsEmpty() {
112 assertFalse(testTable.isEmpty());
113 }
114
115 public void testSize() {
116 assertEquals(1, testTable.size());
117 }
118
119 public void testValues() {
120 assertThat(testTable.values()).has().item("blah");
121 }
122
123 @Override Iterable<ImmutableTable<Character, Integer, String>> getTestInstances() {
124 return ImmutableSet.of(testTable);
125 }
126 }
127